package com.proxy.cglib;

import java.lang.reflect.Method;

import net.sf.cglib.beans.BeanGenerator;

//cglib提供的一个操作bean的工具，使用它能够在运行时动态的创建一个bean。
//在上面的代码中，我们使用cglib动态的创建了一个和SampleBean相同的Bean对象，包含一个属性value以及getter、setter方法
public class BeanGeneratorDemo {

	public static void main(String[] args) throws Exception {
		BeanGenerator beanGenerator = new BeanGenerator();
	    beanGenerator.addProperty("value", String.class);
	    Object myBean = beanGenerator.create();
	    Method setter = myBean.getClass().getMethod("setValue", String.class);
	    setter.invoke(myBean, "Hello cglib");

	    Method getter = myBean.getClass().getMethod("getValue");
	    System.out.println(getter.invoke(myBean));
	}

}
